import systemConfig from './systemConfig'
module.exports = (vm) => {
	// 初始化请求配置
	uni.$u.http.setConfig((config) => {
		config.baseURL = systemConfig.apiUrl;
		config.timeout = 60000;
		return config
	})
	// 请求拦截
	uni.$u.http.interceptors.request.use((config) => { // 可使用async await 做异步操作
		config.header = {
			'content-type': 'application/json',
			'token': uni.getStorageSync('token') || 'none'
		}
		var param = config.data || config.params;
		uni.showLoading({
			title: '数据加载中 :)'
		});
		return config;
	}, config => { // 可使用async await 做异步操作
		return Promise.reject(config)
	})
	// 响应拦截
	uni.$u.http.interceptors.response.use((response) => {
		/* 对响应成功做点什么 可使用async await 做异步操作*/
		var res = response.data;
		uni.hideLoading();
		if (res.code == 200) { //正常返回

			return res.data === undefined ? {} : res.data
		} else if (res.code == 300) { //弹窗提示信息,确定后返回
			//弹窗提示
			uni.showModal({
				title: '提示',
				content: res.msg,
				showCancel: false,
				confirmText: '知道了',
				success: function(d) {
					uni.navigateBack();
				}
			});
			return new Promise(() => {})
			return false;
		} else if (res.code == 401) { //退出登录
			return new Promise(() => {})
			return false;
		} else if (res.code == 444) { //重复请求
			return new Promise(() => {})
			return false;
		} else {
			// uni.showToast({
			// 	title:res.msg,
			// 	icon:'error'
			// })
			uni.$u.toast(res.msg)
			return new Promise(() => {})
			return false;
		}
	}, (response) => {
		uni.hideLoading();
		// 对响应错误做点什么 （statusCode !== 200）
		if (response.statusCode == 401) {
			var pages = getCurrentPages();
			let currentRoute = pages[pages.length - 1]
				.route;
			 if(currentRoute === 'pages/mine/index'){
				 return;
			 }
			uni.showModal({
				title: '提示:',
				content: '登录失效，去登录?',
				success: (res) => {
					if (res.confirm) {
						uni.removeStorageSync('token');
						uni.navigateTo({
							url: '/pages/login/index'
						})
					} else if (res.cancel) {
						uni.$u.toast('用户取消登录 :)');
				
					}
			
				}
			})


		}
		// return Promise.reject(response) //抛出异常
	})
}